@@ -76,3 +76,8 @@ urlpatterns += [ |
||
76 | 76 |
url(r'^wx/order_create$', pay_views.wx_order_create_api, name='wx_order_create_api'), # 订单创建 |
77 | 77 |
url(r'^wx/notify_url$', pay_views.wx_notify_url_api, name='wx_notify_url_api'), # 支付异步通知回调地址 |
78 | 78 |
] |
79 |
+ |
|
80 |
+# 首页相关 |
|
81 |
+urlpatterns += [ |
|
82 |
+ url(r'^pai2/home$', group_views.pai2_home_api, name='pai2_home_api'), # 首页信息 |
|
83 |
+] |
@@ -0,0 +1,24 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+from __future__ import unicode_literals |
|
3 |
+ |
|
4 |
+from django.db import models, migrations |
|
5 |
+ |
|
6 |
+ |
|
7 |
+class Migration(migrations.Migration): |
|
8 |
+ |
|
9 |
+ dependencies = [ |
|
10 |
+ ('group', '0010_auto_20160120_1830'), |
|
11 |
+ ] |
|
12 |
+ |
|
13 |
+ operations = [ |
|
14 |
+ migrations.AddField( |
|
15 |
+ model_name='groupphotoinfo', |
|
16 |
+ name='comment_num', |
|
17 |
+ field=models.IntegerField(default=0, help_text='\u7167\u7247\u8bc4\u8bba\u6570\u91cf', verbose_name='comment_num'), |
|
18 |
+ ), |
|
19 |
+ migrations.AddField( |
|
20 |
+ model_name='groupphotoinfo', |
|
21 |
+ name='thumbup_num', |
|
22 |
+ field=models.IntegerField(default=0, help_text='\u7167\u7247\u70b9\u8d5e\u6570\u91cf', verbose_name='thumbup_num'), |
|
23 |
+ ), |
|
24 |
+ ] |
@@ -0,0 +1,19 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+from __future__ import unicode_literals |
|
3 |
+ |
|
4 |
+from django.db import models, migrations |
|
5 |
+ |
|
6 |
+ |
|
7 |
+class Migration(migrations.Migration): |
|
8 |
+ |
|
9 |
+ dependencies = [ |
|
10 |
+ ('group', '0011_auto_20160302_2048'), |
|
11 |
+ ] |
|
12 |
+ |
|
13 |
+ operations = [ |
|
14 |
+ migrations.AddField( |
|
15 |
+ model_name='groupinfo', |
|
16 |
+ name='group_avatar', |
|
17 |
+ field=models.CharField(help_text='\u7fa4\u7ec4\u5934\u50cf', max_length=255, null=True, verbose_name='group_avatar', blank=True), |
|
18 |
+ ), |
|
19 |
+ ] |
@@ -19,6 +19,7 @@ class GroupInfo(CreateUpdateMixin): |
||
19 | 19 |
group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True, unique=True) |
20 | 20 |
admin_id = models.CharField(_(u'admin_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识') |
21 | 21 |
group_name = models.CharField(_(u'group_name'), max_length=255, blank=True, null=True, help_text=u'群组名称') |
22 |
+ group_avatar = models.CharField(_(u'group_avatar'), max_length=255, blank=True, null=True, help_text=u'群组头像') |
|
22 | 23 |
group_desc = models.TextField(_(u'group_desc'), blank=True, null=True, help_text=u'群组描述') |
23 | 24 |
group_from = models.IntegerField(_(u'group_from'), choices=GROUP_FROM, default=APP_GROUP, help_text=u'群组来源') |
24 | 25 |
session_id = models.CharField(_(u'session_id'), max_length=255, blank=True, null=True, help_text=u'照片组唯一标识', db_index=True) |
@@ -114,6 +115,8 @@ class GroupPhotoInfo(CreateUpdateMixin): |
||
114 | 115 |
nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称') |
115 | 116 |
photo_path = models.CharField(_(u'photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径') |
116 | 117 |
photo_thumbnail_path = models.CharField(_(u'photo_thumbnail_path'), max_length=255, blank=True, null=True, help_text=u'照片缩略图存放路径') |
118 |
+ comment_num = models.IntegerField(_(u'comment_num'), default=0, help_text=u'照片评论数量') |
|
119 |
+ thumbup_num = models.IntegerField(_(u'thumbup_num'), default=0, help_text=u'照片点赞数量') |
|
117 | 120 |
|
118 | 121 |
class Meta: |
119 | 122 |
verbose_name = _(u'groupphotoinfo') |
@@ -137,6 +140,8 @@ class GroupPhotoInfo(CreateUpdateMixin): |
||
137 | 140 |
'photo_id': self.pk, |
138 | 141 |
'photo_url': self.photo_url, |
139 | 142 |
'photo_thumbnail_url': self.photo_thumbnail_url, |
143 |
+ 'comment_num': self.comment_num, |
|
144 |
+ 'thumbup_num': self.thumbup_num, |
|
140 | 145 |
} |
141 | 146 |
|
142 | 147 |
|
@@ -2,7 +2,7 @@ |
||
2 | 2 |
|
3 | 3 |
from django.conf import settings |
4 | 4 |
from django.core.files.storage import default_storage |
5 |
-from django.db import transaction |
|
5 |
+from django.db import connection, transaction |
|
6 | 6 |
from django.http import JsonResponse |
7 | 7 |
|
8 | 8 |
from rest_framework import viewsets |
@@ -640,6 +640,32 @@ def thumbup_cancel_api(request): |
||
640 | 640 |
}) |
641 | 641 |
|
642 | 642 |
|
643 |
+def pai2_home_api(request): |
|
644 |
+ user_id = request.POST.get('user_id', '') |
|
645 |
+ |
|
646 |
+ cursor = connection.cursor() |
|
647 |
+ cursor.execute(r"select T1.group_id, T2.group_name, T2.group_avatar, T3.photo_thumbnail_path, T3.comment_num, T3.thumbup_num, T3.created_at from (select * from group_groupuserinfo where user_id='%s') as T1 left outer join group_groupinfo as T2 on T1.group_id = T2.group_id left outer join group_groupphotoinfo as T3 on T1.group_id = T3.group_id and T3.id > T1.current_id order by thumbup_num desc;" % user_id) |
|
648 |
+ rows = cursor.fetchall() |
|
649 |
+ |
|
650 |
+ rows = [{ |
|
651 |
+ 'group_id': row[0], |
|
652 |
+ 'group_name': row[1], |
|
653 |
+ 'group_avatar': row[2], |
|
654 |
+ 'photo_thumbnail_url': u'{0}/{1}'.format(settings.IMG_DOMAIN, row[3]) if row[3] else '', |
|
655 |
+ 'comment_num': row[4], |
|
656 |
+ 'thumbup_num': row[5], |
|
657 |
+ 'created_at': row[6], |
|
658 |
+ } for row in rows] |
|
659 |
+ |
|
660 |
+ return JsonResponse({ |
|
661 |
+ 'status': 200, |
|
662 |
+ 'message': u'获取首页列表成功', |
|
663 |
+ 'data': { |
|
664 |
+ 'photos': rows |
|
665 |
+ } |
|
666 |
+ }) |
|
667 |
+ |
|
668 |
+ |
|
643 | 669 |
class GroupInfoViewSet(viewsets.ModelViewSet): |
644 | 670 |
queryset = GroupInfo.objects.all().order_by('-pk') |
645 | 671 |
serializer_class = GroupInfoSerializer |
@@ -0,0 +1,7 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+# 用户相关 |
|
4 |
+PROFILE_USER_INFO = 'profile:user:info:%s' # 用户信息,uid |
|
5 |
+ |
|
6 |
+# 群组相关 |
|
7 |
+GROUP_INFO = 'group:info:%s' # 群组信息,group_id |